package com.cy.jt.portals.service.feign;

import com.cy.jt.common.domain.SysNotice;
import com.cy.jt.common.vo.JsonResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * value 表示远程服务名，contextId为@FeignClient注解描述的接口的
 * 类全名，然后首字母小写。
 */
@FeignClient(value = "jt-system",contextId = "remoteNoticeService")
public interface RemoteNoticeService {
    /*
    报错信息：
        feign.FeignException$MethodNotAllowed: [405] during [GET] to [http://
        jt-system/notice/select] [RemoteNoticeService#doSelectNotice(SysNotice)
        ]: [{"timestamp":"2021-09-06T02:59:44.094+00:00","status":405,"error":
        "Method Not Allowed","message":"","path":"/notice/select"}]
    问题：OpenFeign新版本将get请求改为post请求
    解决办法：
    解决办法一：
    如下：把get请求改为post请求
    @PostMapping("/notice/select")//这个url要与你要调用的远程服务的url相同
    JsonResult doSelectNotice(@RequestBody SysNotice notice);
     */
    /*
    解决办法二：
        如下：就用get请求，不用新版的OpenFeign
        操作如下：
        在依赖中添加如下依赖：
        <dependency>
            <groupId>io.github.openfeign</groupId>
            <artifactId>feign-httpclient</artifactId>
            <version>10.9</version>
        </dependency>
        在yml文件中添加如下配置：
        feign:
          httpclient:
            enabled: true
        如下所示：
     */
    @GetMapping("/notice/")//这个url要与你要调用的远程服务的url相同
    JsonResult doSelectNotice(/*@RequestBody*/ SysNotice notice);
}
